package edu.upc.galaxy.dao.impl;

import edu.upc.galaxy.dao.*;
import edu.upc.galaxy.entity.CanchaEntity;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.springframework.stereotype.Repository;

/**
 *
 * @author Alvaro
 */
@Repository
public class CanchaDaoImpl extends BaseDao {
    

    
    public Integer insertar(CanchaEntity cancha) {
        String insert = "insert into cancha(nombre,caracteristica) values (?,?)";
        List list = new ArrayList();
        list.add(cancha.getNombre());
        list.add(cancha.getCaracteristica());
        return this.insert(insert, list);
    }
    
    public void actualizar(CanchaEntity cancha) {
        String update = "update cancha set nombre = ?, caracteristica = ? where id = ?";
        List list = new ArrayList();
        list.add(cancha.getNombre());
        list.add(cancha.getCaracteristica());
        list.add(cancha.getCodcancha());
        this.update(update, list);
    }
    
    public void eliminar(CanchaEntity cancha) {
        String delete = "delete from cancha where id = ?";
        this.delete(delete,cancha.getCodcancha());
    }
    
    public List<CanchaEntity> buscar() {
        ResultSet rs = this.select("select * from cancha");
        List<CanchaEntity> listado = new ArrayList<CanchaEntity>();
        try {
            while (rs.next()) {
                CanchaEntity cancha = new CanchaEntity();
                cancha.setCodcancha(rs.getInt(1));
                cancha.setNombre(rs.getString(2));
                cancha.setCaracteristica(rs.getString(3));
                listado.add(cancha);
            }
        } catch (SQLException ex) {
            Logger.getLogger(CanchaDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
        }
        return listado;
        
        
    }  
   public List<CanchaEntity> mostrarCancha() throws Exception{
    	ResultSet rs = this.select("select * from cancha");
        List<CanchaEntity> listado = new ArrayList<CanchaEntity>();
		try{
    		  //new conecta();
 		//	  cn = conecta.obtenerConexion();
    	      //cs = cn.prepareCall("{call usp_listar_canchas()}");
    	      //rs = cs.executeQuery();
    	      //lista = new ArrayList<cancha>();
    	       while(rs.next()){
    	    	   CanchaEntity cancha = new CanchaEntity();
    	    	   cancha.setCodcancha(Integer.parseInt(rs.getString(1)));
    	    	   cancha.setNombre(rs.getString(2));
    	    	   cancha.setCaracteristica(rs.getString(3));
    	    	   cancha.setFechaatencion(rs.getString(4));
    	    	   cancha.setTarifa(rs.getDouble(5));
    	    	   cancha.setPromocion(rs.getString(6));
    	  //  	   cancha.setLocal(rs.getString(7));
 	//    	   cancha.setTelefono(rs.getString(8));
    	           listado.add(cancha);
    	           }
    	       rs.close();
    	   //    cs.close();
    	     //  cn.close();
    	}catch (SQLException e) {
       	 e.printStackTrace();
        }
    	
    	return listado;
    }

    public List<CanchaEntity> mostrarCanchasDisponibles(int iddistrito, String dias_atencion)throws Exception {
        
         List<CanchaEntity> listado = new ArrayList<CanchaEntity>();
            ResultSet rs = this.select("select * from cancha");
        try{
 	//	  new connection();
            //		  cn = conecta.obtenerConexion();
            //    cs = cn.prepareCall("{call usp_listar_canchas_disponibles(?,?)}");
            //   cs.setInt(1, iddistrito);
            //     cs.setString(2, dias_atencion);
            //List<CanchaENTITY> listad = new ArrayList<CanchaENTITY>();     rs = cs.executeQuery();
           
 	       while(rs.next()){
 	    	   CanchaEntity cancha = new CanchaEntity();
 	    	   cancha.setCodcancha(Integer.parseInt(rs.getString(1)));
 	    	   cancha.setNombre(rs.getString(2));
 	    	   cancha.setCaracteristica(rs.getString(3));
 	    	   cancha.setFechaatencion(rs.getString(4));
 	    	   cancha.setTarifa(rs.getDouble(5));
 	    	   cancha.setPromocion(rs.getString(6));
 	    //	   cancha.setLocal(rs.getString(7));
 	    //	   cancha.setLocal_telefono(rs.getString(8));
 	    //	  entidad.setDisponibilidad(rs.getString(9));
 	           listado.add(cancha);
 	           }
 	       rs.close();
 	  //     cs.close();
 	  //     cn.close();
 	}catch (SQLException e) {
    	 e.printStackTrace();
     }
 	
  
     return listado;
        
 }


 
    
}
